//package com.avic.rong.utils;
//
//import android.content.ContentResolver;
//import android.content.Context;
//import android.database.Cursor;
//import android.provider.MediaStore.Audio.Albums;
//import android.provider.MediaStore.Images.Media;
//import android.provider.MediaStore.Images.Thumbnails;
//
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Map.Entry;
//
//
///**
// *
// * @author Administrator
// *
// */
//public class AlbumHelper {
//	final String TAG = getClass().getSimpleName();
//	Context mContext;
//	ContentResolver cr;
//
//	HashMap<String, String> thumbnailList = new HashMap<String, String>();
//	List<HashMap<String, String>> albumList = new ArrayList<HashMap<String, String>>();
//	HashMap<String, ImageBucket> bucketList = new HashMap<String, ImageBucket>();
//
//	private static AlbumHelper instance;
//	private List<ImageBucket> tmpList;
//
//	private AlbumHelper() {
//	}
//
//	public static AlbumHelper getHelper() {
//		if (instance == null) {
//			instance = new AlbumHelper();
//		}
//		return instance;
//	}
//
//	public void init(Context context) {
//		if (this.mContext == null) {
//			this.mContext = context;
//			cr = context.getContentResolver();
//		}
//	}
//
//	private void getThumbnail() {
//		String[] projection = { Thumbnails._ID, Thumbnails.IMAGE_ID,
//				Thumbnails.DATA };
//
//		Cursor cursor = cr.query(Thumbnails.EXTERNAL_CONTENT_URI, projection,
//				null, null, null);
//		getThumbnailColumnData(cursor);
//	}
//
//	private void getThumbnailColumnData(Cursor cur) {
//		if (cur.moveToFirst()) {
//			int image_id;
//			String image_path;
//			int image_idColumn = cur.getColumnIndex(Thumbnails.IMAGE_ID);
//			int dataColumn = cur.getColumnIndex(Thumbnails.DATA);
//
//			do {
//				image_id = cur.getInt(image_idColumn);
//				image_path = cur.getString(dataColumn);
//				thumbnailList.put("" + image_id, image_path);
//			} while (cur.moveToNext());
//		}
//	}
//
//	void getAlbum() {
//		String[] projection = { Albums._ID, Albums.ALBUM, Albums.ALBUM_ART,
//				Albums.ALBUM_KEY, Albums.ARTIST, Albums.NUMBER_OF_SONGS };
//
//		Cursor cursor = cr.query(Albums.EXTERNAL_CONTENT_URI, projection, null,
//				null, null);
//		getAlbumColumnData(cursor);
//
//	}
//
//	private void getAlbumColumnData(Cursor cur) {
//		if (cur.moveToFirst()) {
//			int _id;
//			String album;
//			String albumArt;
//			String albumKey;
//			String artist;
//			int numOfSongs;
//
//			int _idColumn = cur.getColumnIndex(Albums._ID);
//			int albumColumn = cur.getColumnIndex(Albums.ALBUM);
//			int albumArtColumn = cur.getColumnIndex(Albums.ALBUM_ART);
//			int albumKeyColumn = cur.getColumnIndex(Albums.ALBUM_KEY);
//			int artistColumn = cur.getColumnIndex(Albums.ARTIST);
//			int numOfSongsColumn = cur.getColumnIndex(Albums.NUMBER_OF_SONGS);
//
//			do {
//				_id = cur.getInt(_idColumn);
//				album = cur.getString(albumColumn);
//				albumArt = cur.getString(albumArtColumn);
//				albumKey = cur.getString(albumKeyColumn);
//				artist = cur.getString(artistColumn);
//				numOfSongs = cur.getInt(numOfSongsColumn);
//				HashMap<String, String> hash = new HashMap<String, String>();
//				hash.put("_id", _id + "");
//				hash.put("album", album);
//				hash.put("albumArt", albumArt);
//				hash.put("albumKey", albumKey);
//				hash.put("artist", artist);
//				hash.put("numOfSongs", numOfSongs + "");
//				albumList.add(hash);
//
//			} while (cur.moveToNext());
//
//		}
//	}
//
//	boolean hasBuildImagesBucketList = false;
//
//	void buildImagesBucketList() {
//		bucketList.clear();
//		getThumbnail();
//
//		String columns[] = new String[] { Media._ID, Media.BUCKET_ID,
//				Media.PICASA_ID, Media.DATA, Media.DISPLAY_NAME, Media.TITLE,
//				Media.SIZE, Media.BUCKET_DISPLAY_NAME };
//
//		String sortOrder = Media.DATE_MODIFIED + " desc";
//
//		Cursor cur = cr.query(Media.EXTERNAL_CONTENT_URI, columns, null, null,
//				sortOrder);
//		if (cur.moveToFirst()) {
//			int photoIDIndex = cur.getColumnIndexOrThrow(Media._ID);
//			int photoPathIndex = cur.getColumnIndexOrThrow(Media.DATA);
//			int bucketDisplayNameIndex = cur
//					.getColumnIndexOrThrow(Media.BUCKET_DISPLAY_NAME);
//			int bucketIdIndex = cur.getColumnIndexOrThrow(Media.BUCKET_ID);
//			do {
//				String _id = cur.getString(photoIDIndex);
//				String path = cur.getString(photoPathIndex);
//				String bucketName = cur.getString(bucketDisplayNameIndex);
//				String bucketId = cur.getString(bucketIdIndex);
//				ImageBucket bucket = bucketList.get(bucketId);
//				if (bucket == null) {
//					bucket = new ImageBucket();
//					bucketList.put(bucketId, bucket);
//					bucket.imageList = new ArrayList<ImageItem>();
//					bucket.bucketName = bucketName;
//				}
//				bucket.count++;
//				ImageItem imageItem = new ImageItem();
//				imageItem.imageId = _id;
//				imageItem.imagePath = path;
//				imageItem.thumbnailPath = thumbnailList.get(_id);
//				bucket.imageList.add(imageItem);
//
//			} while (cur.moveToNext());
//		}
//
//		Iterator<Entry<String, ImageBucket>> itr = bucketList.entrySet()
//				.iterator();
//		while (itr.hasNext()) {
//			Entry<String, ImageBucket> entry = (Entry<String, ImageBucket>) itr
//					.next();
//			ImageBucket bucket = entry.getValue();
//
//			for (int i = 0; i < bucket.imageList.size(); ++i) {
//
//				// MethodUtils.myLog(TAG, "----- " + image.imageId + ", " +
//				// image.imagePath
//				// + ", " + image.thumbnailPath);
//			}
//		}
//		hasBuildImagesBucketList = true;
//	}
//
//	public List<ImageBucket> getImagesBucketList(boolean refresh) {
//		if (tmpList != null && tmpList.size() > 0) {
//			return tmpList;
//		}
//		buildImagesBucketList();
//		tmpList = new ArrayList<ImageBucket>();
//		Iterator<Entry<String, ImageBucket>> itr = bucketList.entrySet()
//				.iterator();
//		while (itr.hasNext()) {
//			Entry<String, ImageBucket> entry = (Entry<String, ImageBucket>) itr
//					.next();
//			tmpList.add(entry.getValue());
//		}
//		bucketList.clear();
//		return tmpList;
//	}
//
//	String getOriginalImagePath(String image_id) {
//		String path = null;
//		String[] projection = { Media._ID, Media.DATA };
//		Cursor cursor = cr.query(Media.EXTERNAL_CONTENT_URI, projection,
//				Media._ID + "=" + image_id, null, null);
//		if (cursor != null) {
//			cursor.moveToFirst();
//			path = cursor.getString(cursor.getColumnIndex(Media.DATA));
//
//		}
//		return path;
//	}
//
//}
